package thread;
/*
sleep方法要求必须处理中断异常InterruptedException
当一个线程调用sleep方法处于睡眠阻塞的过程中若该线程的interrupt方法被调用,那么此时会立即中断该线程的
睡眠阻塞,此时sleep方法会通过抛出异常告知这一现象.
 */
public class SleepDemo2 {
    public static void main(String[] args) {
        Thread lin = new Thread("林"){
            @Override
            public void run() {
                System.out.println(getName()+":刚美完容睡一会吧。。。");
                try {
                    Thread.sleep(50000);
                } catch (InterruptedException e) {
                    //sleep方法被interrupt()方法中断则会走catch里的方法
                    System.out.println(getName()+":干嘛呢！都破了相了！");
                }
                System.out.println(getName()+":醒了");
            }
        };
        lin.start();
        Thread huang = new Thread("黄大锤"){
            @Override
            public void run() {
                System.out.println(getName()+ ":大锤80，小锤40，开始砸墙！");
                for (int i = 0; i < 5; i++) {
                    System.out.println(getName()+"：80！");
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("哐当");
                System.out.println(getName()+":大哥搞定");
                lin.interrupt();//huang线程去中断lin线程的睡眠阻塞
            }
        };

        huang.start();

    }
}
